package com.allwees.bs.module.oms.service.impl;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.allwees.bs.core.model.merchant.entity.MerchantModel;
import com.allwees.bs.core.model.order.entity.SkuSnapModel;
import com.allwees.bs.module.core.dynamic.data.DynamicInjectQuery;
import com.allwees.bs.module.mms.entity.Store;
import com.allwees.bs.module.mms.service.StoreService;
import com.allwees.bs.module.oms.dto.OrderRefundDto;
import com.allwees.bs.module.oms.entity.OrderRefund;
import com.allwees.bs.module.oms.req.query.OrderRefundQueryReq;
import com.allwees.bs.module.oms.service.GeneralOrderRefundService;
import com.allwees.bs.module.oms.vo.ExportRefundVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class GeneralOrderRefundServiceImpl extends BaseOrderRefundServiceImpl implements GeneralOrderRefundService {


    @Autowired
    private StoreService storeService;


    @Autowired
    private DynamicInjectQuery dynamicInjectQuery;

    @Override
    public IPage<OrderRefundDto> page(IPage<OrderRefund> page, OrderRefundQueryReq req) {
        return baseMapper.page(page, req);
    }


    @Override
    public  List<Store> findAllStoreList() {
        return   storeService.list();
    }

    @Override
    public List<ExportRefundVo>  exportRefundList(OrderRefundQueryReq req) {
        List<ExportRefundVo>  exportRefundVoList = baseMapper.exportRefundList(req);
        for (ExportRefundVo exportRefundVo : exportRefundVoList) {
            MerchantModel merchantModel = dynamicInjectQuery.findRetailerByKey(exportRefundVo.getRetailerUuid());
            SkuSnapModel skuSnap = dynamicInjectQuery.findSkuSnapByKey(exportRefundVo.getOrderItemUuid());
            exportRefundVo.setProductName(skuSnap.getProductName());
            exportRefundVo.setPhotos(skuSnap.getPhotosStr());
            exportRefundVo.setStoreName(merchantModel.getStoreName());
            exportRefundVo.setSkuColor(skuSnap.getSkuColor());
            exportRefundVo.setSkuSize(skuSnap.getSkuSize());
            exportRefundVo.setSkuAmt(skuSnap.getSkuAmtAfterAdd());
            exportRefundVo.setSkuAmtProduct(skuSnap.getSkuAmtProductAfterAdd());
            exportRefundVo.setSkuAmtShipping(skuSnap.getSkuShippingPriceAfterAdd());

        }
        return exportRefundVoList;
    }


}
